// 获取或创建用户
'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
	//event为客户端上传的参数
	
	// 后端请求获取openId
	const appid = 'wxd74459b350a31c33';
	const secret = 'bbfcdebfcc120e81a1f9e6b720c1d4ba';
	const apiUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid='+appid+'&secret='+secret+'&js_code='+event.code+'&grant_type=authorization_code';
	const wxRes = await uniCloud.httpclient.request(apiUrl, {
		method: 'GET',
		data: {},
		contentType: 'json', // 指定以application/json发送data内的数据
		dataType: 'json' // 指定返回值为json格式，自动进行parse
	})
	
	if (wxRes.data.hasOwnProperty('errcode')) {
	    // errcode key存在
	    return { code: 400, msg: `请求openId失败: ${wxRes.data.errmsg}` }
	} else {
	    // errcode key不存在
		const res = await db.collection('users').where({open_id:wxRes.data.openid}).get() // 直接执行数据库操作
		console.log('获取用户数据库数据:', res)
		if (res.affectedDocs === 0){
			const res = await db.collection('users').add({
				"open_id": wxRes.data.openid,
				"wx_name": event.wxName,
				"status": false,
				"email": "Kc.Guan@foxmail.com",
				"time_stamp": Date.parse(new Date())
			})
			return { code: 208, msg: '联系管理员授权' }
		} else {
			if (res.data[0].status) {
				// 状态为true，跳转到首页
				return { data:{open_id:res.data[0].open_id}, code: 200, msg: 'ok' }
			} else {
				// 状态为false，停留在登录页并给出: 联系管理员放权
				return { code: 208, msg: '联系管理员放权' }
			}
		}
	}
};